#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

const char *food[] = {"好粥道","农耕记","大鸭梨烤鸭","金手勺东北菜",
			"华莱士","鸡蛋灌饼","大盘鸡","清真牛肉面","米村拌饭","隆江猪脚饭"};

int len = sizeof(food) / sizeof(food[0]); // 数组元素个数

int main(int argc, const char *argv[]){
	if(2 != argc){
		printf("Usage : %s 点餐的份数\n", argv[0]);
		return -1;
	}
	// 订餐的份数
	int num = atoi(argv[1]);
	if(num < 1 || num > len){
		printf("目前没有这么多商家 当前只有 %d 个商家\n", len);
		return -1;
	}
	// 设置随机种子
	srand(time(NULL));
	// 因为需要的随机数个数不确定 所以考虑在堆区分配空间
	int *index = (int *)malloc(sizeof(int) * num);
	if(NULL == index){
		return -1;
	}
	memset(index, 0, sizeof(int) * num); // 清0
	// 获取随机数
	int i = 0;
	int j = 0;
	for(i = 0; i < num;){
		index[i] = rand() % 10;
		// 判断重复
		for(j = 0; j < i; j++){
			if(index[i] == index[j]){
				break;
			}
		}
		if(j == i){
			i++;
		}
	}
	// 输出
	printf("进入可点餐:\n");
	printf("-----------------\n");
	for(i = 0; i < num; i++){
		printf("%s\n", food[index[i]]);
	}
	printf("-----------------\n");
	// 释放空间
	free(index);
	index = NULL;
	return 0;
}
